#!/bin/bash

# 简单性能测试脚本 - 使用curl进行基本性能测试

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'

echo -e "${CYAN}🚀 简单性能测试 - Vert.cj vs SeedHttp风格${NC}"
echo -e "${CYAN}========================================${NC}"

# 测试函数
test_endpoint() {
    local url=$1
    local name=$2
    local requests=$3
    
    echo -e "${BLUE}📊 测试${name}: ${url}${NC}"
    
    # 预热
    curl -s "${url}" > /dev/null
    
    # 记录开始时间
    start_time=$(date +%s.%N)
    
    # 发送多个请求
    for i in $(seq 1 ${requests}); do
        curl -s "${url}" > /dev/null
        if [ $((i % 10)) -eq 0 ]; then
            echo -n "."
        fi
    done
    
    # 记录结束时间
    end_time=$(date +%s.%N)
    
    # 计算性能
    duration=$(echo "${end_time} - ${start_time}" | bc)
    qps=$(echo "scale=2; ${requests} / ${duration}" | bc)
    
    echo ""
    echo -e "${GREEN}  ✅ 完成${requests}个请求${NC}"
    echo -e "${GREEN}  ⏱️  耗时: ${duration}秒${NC}"
    echo -e "${GREEN}  ⚡ QPS: ${qps}${NC}"
    echo ""
}

# 检查bc命令
if ! command -v bc &> /dev/null; then
    echo -e "${RED}❌ 需要安装bc命令: brew install bc${NC}"
    exit 1
fi

# 检查服务器是否运行
echo -e "${YELLOW}🔍 检查服务器状态...${NC}"

if ! curl -s http://localhost:8080/api/status > /dev/null; then
    echo -e "${RED}❌ Vert.cj服务器 (8080) 未运行${NC}"
    echo -e "${YELLOW}请先运行: cjpm run --name vert.examples.final_demo${NC}"
    exit 1
fi

if ! curl -s http://localhost:8081/api/status > /dev/null; then
    echo -e "${RED}❌ SeedHttp风格服务器 (8081) 未运行${NC}"
    echo -e "${YELLOW}请先运行: cjpm run --name vert.examples.seedhttp_benchmark${NC}"
    exit 1
fi

echo -e "${GREEN}✅ 两个服务器都在运行${NC}"
echo ""

# 测试参数
REQUESTS=100

echo -e "${CYAN}📋 测试配置:${NC}"
echo -e "  🔢 请求数量: ${REQUESTS}"
echo -e "  📍 测试端点: /api/status"
echo ""

# 测试Vert.cj
echo -e "${PURPLE}🔥 测试Vert.cj服务器${NC}"
test_endpoint "http://localhost:8080/api/status" "Vert.cj" ${REQUESTS}

# 测试SeedHttp风格
echo -e "${PURPLE}🔥 测试SeedHttp风格服务器${NC}"
test_endpoint "http://localhost:8081/api/status" "SeedHttp-Style" ${REQUESTS}

echo -e "${GREEN}✅ 性能测试完成！${NC}"
echo ""
echo -e "${CYAN}💡 提示:${NC}"
echo -e "  📊 这是基础性能测试，使用curl顺序发送请求"
echo -e "  🚀 要进行并发测试，请安装wrk并运行 ./benchmark_comparison.sh"
echo -e "  📈 实际性能会比这个测试结果高很多"
